Method and apparatus for processing video

ABSTRACT

Provided is an apparatus for processing a video. The apparatus for processing a video includes an image receiving module that is configured to receive encoded data, a filtering module that is configured to filter an image frame reconstructed from the encoded image, a block dividing module that is configured to divide the filtered image frame into a plurality of blocks, a compression module that is configured to compress each of the plurality of blocks, package the compressed plurality of blocks into a predetermined unit, and generate lookup table information corresponding to each of the packaged plurality of blocks, and a frame buffer memory that is configured to record the packaged data and the lookup table information.

TECHNICAL FIELD

The present invention relates to a method and apparatus for processing avideo, and more particularly, a method and apparatus for processing avideo, capable of improving bandwidth efficiency of a frame buffermemory.

BACKGROUND ART

The present invention results from a research, which has been carriedout as a part of work which was supported by ICT R&D program ofMSIP/IITP [10043450, Development of Video Server Technology forCapturing, Editing, Ingesting, and Transmitting 8K and S3D 4K UHDContents], and supported by the Technology Innovation Program (10049498,4K UHD HEVC/VP9 SoC for Streaming Smart Device) funded by the Ministryof Trade, Industry and Energy (MOTIE, KOREA).

Recent improvement of video processing algorithms allows a videoprocessing apparatus to process much larger-scale images.

Specifically, with need for ultrahigh definition (UHD), existing videocompression techniques have difficulty in accommodating sizes of storagemedia and bandwidths of transfer media. Accordingly, a novel standardfor compression of UHD video is needed. As a result, high efficiencyvideo coding (HEVC) has completely been standardized on January in 2013.The HEVC may be available for a video stream serviced through networks,such as the Internet, 3G, long term evaluation (LTE), etc, in which notonly UHD but also full high definition (FHD) or high definition (HD)videos can be compressed in accordance with HEVC.

A UHD TV is considered to mainly provide 4K (4096×2304 pixels) UHD at 30frames per second (fps) in the short term, while the number of pixels tobe processed per second is expected to continuously increase to 4K 60fps/120 fps, 8K 30 fps/60 fps, and the like. A bandwidth on demand perframe for a bidirectional frame prediction and filtering is expected toremarkably increase as well.

To deal with the increase in the processing bandwidths, a transmissionbandwidth between system modules or to the exterior should also beimproved based on performance or functions required for applications.

However, unlike the remarkable increase in the required processingbandwidth in response to an increase in image resolutions to beprocessed and frame rates, a bandwidth for transmission thereof islimited.

For example, a bandwidth for storing an image in a frame buffer memoryor extracting the image from the frame buffer memory may be limitedaccording to a minimum burst length of a memory application.

To overcome this problem, a method of compressing images which are inputand/or output in/out the frame buffer memory is taken into account, butfails to provide a remarkable bandwidth reduction effect.

Also, current frame buffer compression techniques are using a losscompression algorithm for obtaining high compression efficiency.However, the loss compression algorithm brings about a gradual decreaseof quality and a change of a compression data format.

Due to the format change, a process of searching for a frame buffermemory for random access is made complicated, thereby increasing athroughput and a processing time again.

DISCLOSURE Technical Problem

The present invention has been made keeping in mind the drawbacks of therelated art, and an object of the invention is to provide a videoprocessing apparatus and method, capable of improving bandwidthefficiency even without degradation of quality, by use of losslesscompression of a frame buffer.

Another aspect of the invention is to provide a video processingapparatus and method, which enables fast processing by providing acompression format of a frame buffer which is easy to access whilemaintaining a lossless state.

Technical Solution

In order to achieve the above object, there is provided an apparatus forprocessing a video according to one embodiment disclosed herein, theapparatus including an image receiving module to receive an encodedimage, a filtering module to filter an image frame reconstructed fromthe encoded image, a block dividing module to divide the filtered imageframe into a plurality of blocks, a compression module to compress eachof the plurality of blocks, package the compressed plurality of blocksinto a predetermined unit, and generate lookup table information withrespect to each of the packaged plurality of blocks, and a frame buffermemory to record the packaged data and the lookup table information.

The present disclosure provides a method for processing a video in animage processing method for a video processing apparatus. The method forprocessing the video may include receiving an encoded image, filteringan image frame reconstructed from the encoded image, dividing thefiltered image frame into a plurality of blocks, compressing each of theplurality of blocks, packaging the compressed plurality of blocks into apredetermined unit, generating lookup table information with respect toeach of the packaged plurality of blocks, and recording the packageddata and the lookup table information.

Meanwhile, the video processing method may be implemented as acomputer-readable recording medium having a program executable on acomputer.

Advantageous Effects

According to various embodiments, the present invention can provide anapparatus and method for processing a video, which is capable ofimproving processing efficiency by reducing bandwidths of a memorywithout degradation of quality, even for an image with a large number ofpixels (4K 60 fps/120 fps, 8K 30 fps/60 fps/ . . . , etc.) to beprocessed per second.

Also, according to various embodiments, the present invention canprovide an apparatus and method for processing a video, which is capableof improving processing performance by facilitating an access to acompressed frame buffer memory.

According to various embodiments, the present invention can provide anapparatus and method for processing a video, which is capable ofreducing overhead of input and/or output information in a frame buffermemory and facilitating a system configuration and improving stabilityof the system by reducing a variation of bandwidths.

DESCRIPTION OF DRAWINGS

FIG. 1 is a block diagram illustrating a configuration of a videodecoding apparatus in accordance with one exemplary embodiment disclosedherein.

FIG. 2 is a block diagram illustrating a configuration of a videodecoding apparatus in accordance with another exemplary embodimentdisclosed herein.

FIG. 3 is a block diagram illustrating in more detail a configuration ofa compression module of a video decoding apparatus in accordance with anexemplary embodiment disclosed herein.

FIG. 4 is a flowchart illustrating a video decoding method in accordancewith an exemplary embodiment disclosed herein.

FIG. 5 is a view illustrating a frame buffer memory compressed accordingto an exemplary embodiment disclosed herein.

FIG. 6 is a view illustrating a compression method and grouping inaccordance with an exemplary embodiment disclosed herein.

FIG. 7 is a view illustrating a lookup table in accordance with anexemplary embodiment disclosed herein.

FIG. 8 is a view comparing information stored in a frame buffer memoryaccording to an exemplary embodiment disclosed herein with the relatedart configuration.

FIGS. 9 to 16 are experimental data illustrating improved processingefficiency in case of applying an exemplary embodiment of the presentinvention.

MODE FOR INVENTION

Hereinafter, description will be given in detail of the preferredembodiments of the present invention to be easily practiced by thoseskilled in the art to which the present invention belongs, withreference to the accompanying drawings. However, the present inventioncan be embodied in many different forms and should not be construed aslimited to those exemplary embodiments set forth herein. Configurationsor elements unrelated to the description are omitted in the drawings asto clarify the present invention and like reference numerals refer tolike elements throughout.

It will be understood that when an element is referred to as being“connected with” another element, the element can be connected with theother element or intervening elements may also be present.

It will be understood that when an element is referred to as being “on”another element, the element can be directly on the another element orintervening elements may also be present between the two elements.

Unless specified otherwise, the terms “comprise,” “include,”“comprising,” and/or “including” specify the presence of elements and/orcomponents, but do not preclude the presence or addition of one or moreother elements and/or components. The terms “about” and “substantially”used in this specification to indicate degree are used to express anumerical value or an approximate numerical value when a mentionedmeaning has a manufacturing or material tolerance and are used toprevent those who are dishonest and immoral from wrongfully using thedisclosure of an accurate or absolute numerical value made to helpunderstanding of the present invention. The term “stage (of doing)” of“stage of” used in this specification to indicate degree does not mean“stage for.”

It will be noted that the expression “a combination thereof” in aMarkush statement means a mixture or combination of one or more selectedfrom the group consisting of elements mentioned in the Markushstatement, being construed as including one or more selected from thegroup consisting of the elements.

To encoding an actual picture (image) and a depth information mapthereof, High Efficiency Video Coding (HEVC) providing optimal codingefficiency among existing video coding standards, which is under jointstandardization by the Moving Picture Experts Group (MPEG) and VideoCoding Experts Group (VCEG), may be used as an example, without beinglimited thereto. A decoding apparatus according to an embodiment of thepresent invention may perform decoding through various types (MPEG2,AVC, etc.) of codecs using a frame buffer memory.

Generally, a video processing apparatus may include an encodingapparatus or a decoding apparatus. The encoding apparatus includes anencoding process and a decoding process, and the decoding apparatusincludes a decoding process. The decoding process of the decodingapparatus may be the same as the decoding process of the encodingapparatus. Thus, the following description will be made on the decodingapparatus

FIG. 1 is a block diagram illustrating a configuration of a videodecoding apparatus in accordance with one exemplary embodiment of thepresent invention.

As illustrated in FIG. 1, a video decoding apparatus 100 disclosedherein includes an entropy decoding module 110, a dequantizer/inversetransformer 120, an adder 180, a filtering module 130, a compressionmodule 140, a frame buffer memory 150, a decompression module 160, amotion compensation module 170, and an output module 190.

According to one exemplary embodiment of the present invention, thevideo decoding apparatus 100 may further include an intra/interchangeover switch and an intra prediction module. Here, this oneexemplary embodiment illustrates in more detail a method of compressingand packaging a reference frame for generating a prediction block and amotion compensating process upon inter-frame prediction (in an intermode) using the method.

The entropy decoding module 110 decodes a coded (encoded) bit streamtransmitted from a video encoding apparatus to separate into anintra-prediction mode index, motion information, a quantizationcoefficient sequence, and the like. The entropy decoding module 110 mayprovide the decoded motion information to the motion compensation module170.

The entropy decoding module 110 may provide the intra-prediction modeindex to the motion compensation module 170 and the dequantizer/inversetransformer 120. Also, the entropy decoding module 110 may provide adequantization coefficient sequence to the dequantizer/inversetransformer 120.

The dequantizer/inverse transformer 120 may transform the quantizationcoefficient sequence into a two-dimensional (2D) array of dequantizationcoefficients. The dequantizer/inverse transformer 120 may select one ofa plurality of scanning patterns for transformation. Thedequantizer/inverse transformer 120 may select one of the plurality ofscanning patterns on the basis of at least one of a prediction mode(that is, one of intra prediction and inter prediction) of a currentblock and an intra prediction mode.

The dequantizer/inverse transformer 120 may receive the intra predictionmode from the motion compensation module 170 or the entropy decodingmodule 110.

The dequantizer/inverse transformer 120 recovers (or reconstructs) thequantization coefficients using a quantization matrix, which is selectedfrom a plurality of quantization matrices, to the 2D array ofdequantization coefficients. Different quantization matrices may beapplied depending on a size of a current block to be reconstructed, anda quantization matrix may be selected for blocks of the same size basedon the prediction mode of the current block and the intra predictionmode.

The dequantizer/inverse transformer 120 inverse-transforms thereconstructed quantization coefficients to reconstruct a residual block.

The adder 180 adds the residual block reconstructed by thedequantizer/inverse transformer 120 and a prediction block generated bythe intra prediction module or the motion compensation module 170,thereby reconstructing a picture block.

The filtering module 130 filters off the reconstructed image, generatedby the adder 180. Artifacts due to picture loss generated during aquantization process may be reduced by the filtering. For example, thefiltering module 130 may perform a deblocking filtering process forremoving a blocking effect occurring in a reconstructed picture, anadaptive offset application process for compensating for a differencevalue from an original picture by each pixel, and an adaptive loopfiltering process for compensating for a difference value from anoriginal picture by each coding unit.

The frame buffer memory 150 is a memory to store a local decodingpicture which has been subjected to filtering by the filtering module130. The frame buffer memory 150 may store a plurality of frames orpictures for motion compensation. Data formats of stored and outputframes may be changeable by the compression module 140 and thedecompression module 160.

The frame buffer memory 150, for example, may include at least one ofstorage media, such as a flash memory type, a hard disk type, amultimedia card micro type, a card memory type (e.g., SD or XD memory),RAM and ROM (e.g., EEPROM, etc.).

The compression module 140 is a module to compress frames stored in theframe buffer memory 150 according to the video processing method of thepresent invention. The decompression module 160 is a module to extract arandom access target frame from the frame buffer memory 150, in responseto a request of the motion compensation module 170, and to perform adecompression (inverse compression) for the target frame.

Specifically, the compression module 140 according to an exemplaryembodiment of the present invention may perform lossless compression anduncompression to prevent degraded quality. Also, the compression module140 may generate compression and information and separately manage thecompression information in the form of a lookup table to realize abandwidth reduction.

For example, the compression module 140 may receive the loop-filteredframe, perform an adaptive entropy process using DPCM with respect tothe frame, and thus acquire losslessly-compressed texture segments.

The compression module 140 may generate compression information, whichincludes offset information related to each of the texture segments,package the texture segments by a burst length, and store the packagedtexture segments in the frame buffer memory 150 along with thecompression information. The frame buffer memory 150 may be an externalmemory which is connected through an AXI bus interface.

By virtue of the compression processing of the compression module 140and the operation of the decompression module 160 according to theexemplary embodiment disclosed herein, random access of the motioncompensation module 170 to the frame buffer memory 150 can befacilitated.

Also, 50% of the bandwidth reduction efficiency can result from thelossless compression and the storage based on the burst length accordingto the exemplary embodiment disclosed herein. The configuration of thecompression module 140 will be explained later.

The motion compensation module 170 reconstructs an intra prediction modeof a current block on the basis of the intra prediction mode indexreceived from the entropy decoding module 120, and generates aprediction block according to the reconstructed intra prediction mode.

Specifically, the motion compensation module 170 may randomly access thecompressed picture stored in the frame buffer memory 150 through thedecompression module 160 on the basis of motion vector information, andaccordingly generate a prediction block for a current block. When apoint-precision motion compensation is applied, a selected interpolationfilter is used to generate the prediction block. The generatedprediction block may be transferred to the adder 180.

Meanwhile, although not illustrated, the intra/inter changeover switchmay provide the prediction block, which has been generated by one of theintra prediction module and the motion compensation module 170, to theadder 180 based on an encoding mode.

In order to generate the prediction block for the motion compensation,the motion compensation module 170 may further include a demultiplexer,a motion information encoding mode determination unit, a merge modemotion information decoding unit, an advanced motion vector prediction(AMVP) mode motion information decoding unit, a prediction blockgeneration unit, a residual block decoding unit, and a reconstructedblock generation unit.

The motion information includes a reference picture index and a motionvector. The reference picture index indicates any one picture previouslyencoded and reconstructed.

When a current block is subjected to unidirectional inter predictiveencoding, the motion information indicates one of reference picturesincluded in list 0 (L0). On the other hand, when the current block issubjected to bidirectional predictive encoding, the motion informationmay include a reference picture index indicating one of the referencepictures of the list 0 (L0), and a reference picture index indicatingone of reference pictures of list 1 (L1).

Also, when the current block is subjected to the bidirectionalpredictive encoding, the motion information may include one or twopictures among reference pictures included in a combined list (LC) ofthe list 0 and the list 1.

The motion vector indicates a position of a prediction block within apicture indicated by each reference picture index. The motion vector maybe a pixel unit (integer unit) or a sub pixel unit.

For example, the motion vector may have a resolution of ½, ¼, ⅛ or 1/16pixel. When the motion vector is not an integer unit, the predictionblock is generated from integer pixels.

The demultiplexer demultiplexes encoded motion information and encodedresidual signals from a bit stream received. The demultiplexer transmitsthe demultiplexed motion information to the motion information encodingmode determination unit, and the demultiplexed residual signals to theresidual block decoding unit.

The motion information encoding mode determination unit determines amotion information encoding mode of a current block. The motioninformation encoding mode determination unit may determine the motioninformation encoding mode of the current block according to skip flag ofa bit stream received. The motion information encoding mode may include,but not limited to, at least one of a skip mode, a merge mode and anAMVP mode.

The skip mode may be applied when a skip candidate having the samemotion information as motion information on a current block is presentand a residual signal is 0. Also, the skip mode may be applied when thecurrent block has the same size as a coding unit. The current block maybe regarded as a prediction unit.

The merge mode may be applied when a merge candidate having the samemotion information as motion information on a current block is present.The merge mode may be applied when the current block has a differentsize from a coding unit or when a residual signal is present if thecurrent block has the same size as the coding unit. The merge candidatemay be the same as the skip candidate.

The AMVP mode may be applied when the skip mode and the merge mode arenot adopted. An AMVP candidate having the most similar motion vector toa motion vector of a current block is selected as an AMVP predictor.

The prediction block generation unit generates a prediction block of acurrent block using the reconstructed motion information. When themotion vector is an integer unit, the prediction block generation unitmay generate a prediction block of a current block by copying a block,which corresponds to a position represented by a motion vector in apicture indicated by a reference picture index.

However, when the motion vector is not an integer unit, the predictionblock generation unit may generate pixels of the prediction block frominteger pixels within the picture indicated by the reference pictureindex. In this instance, in a luma pixel, a predictive pixel may begenerated using a 8-tap interpolation filter. In a chroma pixel, apredictive pixel may be generated using a 4-tap interpolation filter.

The residual block decoding unit performs entropy decoding with respectto residual signals. The residual block decoding unit inversely scansentropy-decoded coefficients so as to generate a 2D block of quantizedcoefficients. Different types of inverse scanning may be used dependingon entropy decoding methods.

That is, different inverse scanning methods may be used for the interpredicted residual signals depending on CABAC-based decoding andCAVLC-based decoding. For example, diagonal raster inverse scanning maybe available for CABAC-based decoding, while zigzag inverse scanning maybe available for CAVLC-based decoding.

Also, different inverse scanning methods may be decided depending on asize of the prediction block.

The residual block decoding unit dequantizes a generated coefficientblock using a dequantization matrix. A quantization parameter isreconstructed to derive the quantization matrix. A quantization stepsize is reconstructed by each coding unit of a predetermined size orlarger. The predetermined size may be 8×8 or 16×16.

The residual block decoding unit may inversely transform the dequantizedcoefficient block to reconstruct a residual block. The reconstructedblock generation unit may add the prediction block generated by theprediction block generation unit and the residual block generated by theresidual block decoding unit.

In this manner, a current block may be reconstructed by using thereconstructed prediction block of the current block and the decodedresidual block of the current block. The reconstructed current block maythen be filtered and compressed to be stored in the frame buffer memory15. Such current block may be transferred to the motion compensationmodule 170 after being decompressed or output to the output module 190.

The output module 190 may process data output from the frame buffermemory 150, and display or externally transmit the processed data. Animage signal, a data signal, an OSD signal and the like, processed inthe output module 190 may be converted into R, G, and B signals,respectively, thereby being generated as driving signals.

Also, the output module 190 may further include a converter toreconstruct data compressed by the compression module 140 into an imagesignal. The output module 190 may include PDP, LCD, OLED, flexibledisplay, 3D display and the like to display the converted image signal.

FIG. 2 is a block diagram illustrating a configuration of a videodecoding apparatus in accordance with another exemplary embodimentdisclosed herein.

As illustrated in FIG. 2, a video decoding apparatus 100 according toanother embodiment according to the present invention includes anentropy decoding module 110, a dequantizer/inverse transformer 120, anadder 180, a filtering module 130, a compression module 140, a framebuffer memory 150, an decompression module 160, a motion compensationmodule 170, and an output module 190. The video decoding apparatus 100may further include an uncompression processing module 195.

In FIG. 2, the other components except for the compression module 140,the uncompression processing module 195 and the output module 190perform similar operations to those illustrated in FIG. 1, so detaileddescription thereof will be omitted.

As illustrated in FIG. 2, the uncompression processing module 195included in the another embodiment disclosed herein may transfer animage, which has been filtered by the filtering module 130, directly tothe output module 190 without passing through the compression module140.

Specifically, the uncompression processing module 195 may transfer animage frame, which has been subjected to decoding and filtering, to theoutput module 190 in a line-by-line writing manner. To this end, theuncompression processing module 195 may include a separate buffermemory. A burst length of data may be predetermined as 64 bytes, 128bytes or the like.

In this manner, when a pure YUV image signal which is uncompressed istransferred to the output module 190, the output module 190 may outputthe image signal directly through a display or the like even withoutperforming the decompression (or inverse compression). Also, the outputmodule 190 may easily perform post-processing such as scaling by usingthe pure YUV image signal, which may result in extending a utilizationrange.

Therefore, the exemplary embodiment illustrated in FIG. 2 may notinclude a separate decompression processor, and the compression module140 may compress only a reference frame which is used for motioncompensation and store the compressed reference frame in the framebuffer memory, thereby improving video processing efficiency.

Hereinafter, description will be given in detail of the configuration ofthe compression module of the video encoding apparatus in accordancewith an embodiment disclosed herein.

In accordance with one exemplary embodiment of the present invention,the compression module 140 may include a picture buffer 141, a blockdividing module 142, a compression performing module 143, a packagingmodule 144, a compression data managing module 145, a compression flaggenerator 146, a group identifier generator 147, and a start offsetgenerator 148.

The picture buffer 141 may receive an image signal which has beenfiltered and output from the filtering module 130, and store the imagesignal in a buffer by each frame.

The block dividing module 142 acquires each frame from the picturebuffer 141, and divides the acquired frame into a plurality ofcompression blocks according to a size of a preset compression unit. Inthis embodiment of the present invention, the size of the compressionunit may be fixed, and each frame may be divided into 16×4 blocks, forexample.

The compression performing module 143 decides whether or not to compresseach block, and perform a lossless compression for blocks which havebeen decided to be compressed.

Specifically, according to the exemplary embodiment of the presentinvention, the compression performing module 143 may select one oflossless compression or uncompression for each divided block.

For example, the compression performing module 143 may select, as acompression method, a lossless variable-length compression method, suchas a DPCM entropy coding method.

However, the compression performing module 143 may compare a size ofdata subjected to the variable-length compression with a size ofuncompressed data, and select the uncompression method when the size ofthe data subjected to the variable-length compression is greater thanthe size of the uncompressed data.

In this manner, the compression performing module 143 may applydifferent compression methods for each block, and in some cases, employthe uncompression processing.

Also, the compression performing module 143 may select a method whichcan provide optimal bandwidth efficiency from the compression or theuncompression. Specifically, in order to overcome a degradation ofquality due to the loss compression and a reduction of bandwidthefficiency due to an increased calculation, which are caused in therelated art, the compression performing module 143 may also select amethod for maximizing only the reduced bandwidth efficiency,irrespective of a compression degree.

Accordingly, the compression performing module 143 may transferinformation indicating whether or not to compress a current block to thecompression flag generator 146.

Then, the compression flag generator 146 may generate a compression flagwhich indicates whether or not to compress the current block. Thecompression flag, for example, may have a form of 1-bit flag indicatingcompression or uncompression. The compression flag may correspond toeach block, and be transferred to the group identifier generator.

Meanwhile, the packaging module 144 groups data compressed by thecompression performing module 143 for each block, and packages thegrouped data.

The packaging module 144 may arrange the compressed blocks in one line,and group the arranged blocks on the basis of a burst length of theframe buffer memory 150. Each compressed block set grouped in thepackaging module 144 may be referred to as a burst group (BG).

For example, a burst length may be 128 bytes. In this instance, thepackaging module 144 groups the compressed blocks to be included in agroup based on the 128-byte burst length for packaging.

The packaging module 144 transfers the packaged texture data to thecompression data managing module 145 for each burst group. Thecompression data managing module 145 may perform writing for the framebuffer memory 150 for each burst group. This may bring about a reductionof a bandwidth variation resulting from the variable-length compression.Also, since compression efficiency of the lossless compression ismaintained, the packaging module 144 can maintain an improved state ofbandwidth efficiency (or a reduced state of bandwidths required) whilemaintaining system stability.

Also, the packaging module 143 may generate packaging information, whichindicates a group to which each block belongs in response to beingpackaged and a position within the group, and transfer the packaginginformation to the group identifier generator 147.

The group identifier generator 147 may generate a group identifier whichindicates a group, to which a currently-processed block belongs, fromthe packaging information. The group identifier may include a 8-bitburst group identifier (ID), for example.

The burst group identifier may indicate a relative position of eachgroup with respect to a specific base address.

The start offset generator 148 may generate start offset informationwhich indicates a start position of a current block within a group onthe basis of the packaging information. The offset information, forexample, may include 7-bit start byte offset information. The start byteoffset information may indicate a relative start position of each block.

Meanwhile, the compression flag generator 146, the group identifiergenerator 147 and the start offset generator 148 may transfer thecompression flag, the group identifier and the start offset information,which are related to the current block, to the compression data managingmodule 145, respectively.

The compression data managing module 145 may generate lookup tableinformation by combining the compression flag, the group identifier andthe start offset information, and record the generated lookup tableinformation in the frame buffer memory 150.

In more detail, the compression data managing module 145 may generatethe lookup table information corresponding to each block. Thecompression data managing module 145 may generate 2-byte lookup tableinformation by using 1-bit compression flag, 8-bit group identifier and7-bit offset information.

The generated lookup table information and the packaged data may berecorded in the frame buffer memory 150. As aforementioned, the packageddata may be recorded in the frame buffer memory 150 on the basis of theburst length.

When the 2-byte lookup table information is accumulated by each burstlength (for example, 128 bytes of lookup table information for 64 blocksare accumulated), the compression data managing module 145 may recordthe lookup table information in the frame buffer memory 150. Therefore,the recording of the lookup table information may be maintained based onthe burst length of the memory. This may result in maintaining theimproved bandwidth without change and improving system stability.

That is, in the embodiment of the present invention, in the packagingmodule 144, the unit of packaging the compressed texture block may bethe same as the unit of recording the lookup table information. Also,each unit may correspond to the burst length of the frame buffer memory150. This configuration may cause the improvement of the bandwidthefficiency.

The compression data managing module 145 may refer to lookup tableinformation relating to a previous block in order to generate lookuptable information relating to a current block. In this instance, forblocks belonging to the same group, the same data cannot be repetitivelyprocessed, thereby reducing an amount of data processed.

The frame buffer memory 150 records data output from thethusly-configured compression module 140. Specifically, the compressiondata managing module 145 may control and manage the data recorded in theframe buffer memory 150.

Accordingly, the frame buffer memory 150 may store and maintain thecompressed texture blocks, which have been packaged, by each frame, andalso separately store and maintain lookup table informationcorresponding to each frame.

Also, the lookup table information may include 2-byte information for16×4 block each. In one embodiment, the lookup table information mayinclude burst group identification information and start offsetinformation, which may allow for representing an offset, starting from abase address corresponding to each preset burst group, other than everyaddress of the frame buffer memory 150.

Here, information related to the base address corresponding to eachburst group may be separately stored and managed by the decompressionmodule 160 and the compression module 140, respectively. Therefore, thedecompression module 160 does not have to use all of the memoryaddresses to access the frame buffer memory 150.

Accordingly, the decompression module 160 can fast access a specificblock even when it receives only the lookup table information from theframe buffer memory 150.

Also, by virtue of presetting the burst group identifiers and thecorresponding base addresses and transmitting and receiving only thelookup table information associated therewith, overhead caused due tothe transmission and reception of all of the values of the memoryaddresses can be reduced. This may result in improvement of dataprocessing efficiency and reduction of bandwidths.

Meanwhile, the lookup table information included in the frame buffermemory 150 may be transferred to the decompression module 160. Thedecompression module 160 may access a specific position of the framebuffer memory 150 with reference to the lookup table information,thereby performing random access in response to a request of the motioncompensation module 170. To this end, the decompression module 160 mayinclude a first cache which requests the lookup table information fromthe buffer memory 150 and stores and manages the lookup tableinformation.

In more detail, when a specific frame is identified in response to therequest of the motion compensation module 160, the decompression module160 may acquire group identification information, start offsetinformation and a compression flag relating to each of blockscorresponding to the frame with reference to the lookup tableinformation.

The decompression module 160 may then access a specific address of theframe buffer memory 150 corresponding to each block on the basis of thegroup identification information and the start offset information.Accordingly, in the embodiment according to the present invention, aproblem that a long time is taken to search for a specific block, whichhas been caused in the related art compression method, can be overcome,and fast processing can be carried out while maintaining a bandwidthreduction effect.

The decompression module 160 may determine whether or not to decompresstext blocks according to the compression flags, and if required, performthe decompression. The decompression module 160 may reconstruct thedecompressed blocks to generate frame data requested by the motioncompensation module 170. The decompression module 160 may then transferthe generated frame data to the motion compensation module 170.

Afterwards, the motion compensation module 170 may generate theprediction block based on the motion vector information, asaforementioned, and transfer the generated prediction block to the adder180 to perform decoding of the image through the motion compensation ina sequential manner.

Hereinafter, description will be given of a video processing methodaccording to an exemplary embodiment of the present invention, withreference to FIGS. 4 to 8.

As illustrated in FIG. 4, the video processing apparatus 100 receives abit stream including encoded image data, and entropy-decodes thereceived bit stream (S100).

The video processing apparatus 100 performs dequantization and inversetransformation for the entropy-decoded image data (S110).

As aforementioned, the entropy decoding module 110 may decode theencoded bit stream which is transmitted from a video encoding apparatus,to separate into an intra prediction mode index, motion information, aquantization coefficient sequence and the like. The entropy decodingmodule 110 may provide the decoded motion information to the motioncompensation module 170. The entropy decoding module 110 may alsoprovide a dequantization coefficient sequence to the dequantizer/inversetransformer 120.

The dequantizer/inverse transformer 120 then transforms the quantizationcoefficient sequence into a 2D array of dequantization coefficients,selects one of a plurality of scanning patterns based on at least one ofa prediction mode (i.e., one of intra prediction and inter prediction)of a current block and an intra prediction mode, and reconstructs thequantization coefficients using a quantization matrix, which is selectedfrom a plurality of quantization matrices, to the 2D array ofdequantization coefficients. The dequantizer/inverse transformer 120inversely transforms the reconstructed quantization coefficients toreconstruct a residual block.

Afterwards, the video processing apparatus 100 reconstructs the imageusing the residual block and a prediction block, and filters thereconstructed image (S120).

As aforementioned, the adder 180 may reconstruct an image block byadding the residual block reconstructed by the dequantizer/inversetransformer 120 and the prediction block generated by the intraprediction module or the motion compensation module 170. The filteringmodule 130 may filter off the reconstructed image generated by the adder180. The detailed filtering method has been described.

Afterwards, the video processing apparatus 100 divides the filteredframe by each block (S130).

The compression module 140 may divide the image frame into blocks, inorder to compress and package image frame textures filtered by thefiltering module 130 and record the packaged image frame textures in theframe buffer memory 150.

The video processing apparatus 100 decides whether or not to compresseach divided block and a compression method (S140), and performs thecompression for each block according to the decided method (S150). Thevideo processing apparatus 100 then packages the compressed textureblocks (S160).

Afterwards, the video processing apparatus 100 stores lookup tableinformation and packaged data into frame buffer memory (S170).

FIGS. 5 to 8 are views illustrating a configuration of the divided andpackaged blocks according to an exemplary embodiment of the presentinvention.

(A) of FIG. 5 illustrates a whole frame divided into blocks. Asillustrated in (A) of FIG. 5, each frame may be divided into blocks eachhaving a preset size. The preset size may be variable. 16×4 block isassumed in the embodiment disclosed herein. If a size of a picture isnot a multiple of the preset size, an extra value of a blockcorresponding to an edge may be set to the same value as an edge pixel.

Meanwhile, as illustrated in FIG. 6, each of the divided blocks may beselectively compressed. Here, a compression method, as aforementioned,may be selected from one of uncompression, and variable-length codingcompression using DPCM, on the basis of reduction or non-reduction ofbandwidths.

Each compressed block may be packaged into each group according to aburst length. The packaging module 144 in this embodiment disclosedherein, as illustrated in a bottom of FIG. 6, may package the blocks bydesignating burst groups, respectively. A size of each burst group maycorrespond to a burst length of the frame buffer memory 150, and a groupidentifier may be assigned to each group.

Also, the packaging unit 144, as illustrated in FIG. 7, generates lookuptable information corresponding to each block. The lookup tableinformation may include information for identifying each divided blockand a compressed or uncompressed state thereof from the packaged data.For example, the lookup table information may include 2-byte datacontaining 8-bit group identifier information, 7-bit start offsetinformation and 1-bit compression flag. The lookup table information maybe stored separately in the frame buffer memory 150.

Referring back to FIG. 5, (B) of FIG. 5 illustrates a storage space ofthe frame buffer memory 150 in which the packaged data is recorded in asequential manner. As compared with the whole frame of (A) of FIG. 5,the whole frame of (B) of FIG. 5 can store the compressed texture databy each block.

Here, numbers 0, 1, 2 and 3 at the left of the drawing may indicate baseaddresses corresponding to burst groups, respectively. Each block may beidentified according to burst group identification information and anoffset value. A region in which no texture data is present in each burstgroup may be filled with dummy data.

Meanwhile, (C) of FIG. 5 illustrates lookup table information which isstored separately in the frame buffer memory 150. The lookup tableinformation may be filled with 2-byte values corresponding to respectiveblocks, and arranged in the order of blocks constructing the wholeframe.

Therefore, the decompression module 160 may receive only the lookuptable information, as illustrated in (C) of FIG. 5, to identify textureblocks from the frame buffer memory 150, and can reconstruct an originalframe by performing decompression and reconstruction for the blocks.

Also, as aforementioned, the transmission and reception of only thelookup table information may result in a reduction of overhead causeddue to transmission and reception of every memory address. Consequently,improvement of data processing efficiency and reduction of bandwidthscan be acquired.

FIG. 8 is a view illustrating a size variation of the frame buffermemory 150 according to an exemplary embodiment of the presentinvention, which illustrates a configuration of the frame buffer memory150 for reducing bandwidths.

A left block diagram illustrates a typical frame buffer, and a rightblock diagram illustrates the frame buffer memory 150 which iscompressed and packaged according to the exemplary embodiment of thepresent invention. As illustrated in FIG. 8, unlike the related artframe buffer which stores decoded Y, Cb and Cr values, the frame buffermemory 150 according to the exemplary embodiment of the presentinvention may include compressed Y texture data, compressed C texturedata, lookup table information relating to the compressed Y, and lookuptable information relating to the compressed C.

The frame buffer memory 150 according to the exemplary embodiment of thepresent invention may include a buffer for storing the lookup tableinformation. A size of the buffer may be decided depending on an imageframe size. For example, when 2-byte lookup table information isgenerated for a block of 16×4 pixels, a buffer size for lookup tableinformation may be decided as 1/32*(frame size) for one frame.Therefore, the frame buffer memory 150 according to the embodiment ofthe present invention may further include an additional buffer region ascompared with the conventional frame buffer.

Also, when the 2-byte lookup table information is generated for theblock of 16×4 pixels, a region-based buffer size of the frame buffermemory 150 may be derived by the following formulas.

(PicX+15)/16*16*PicY  Compressed data for Luma:

(PicX/2+15)/16*16*PicY  Compressed data for Chroma:

(PicY+15)/16*(PicX+255)/256*128  Lookup table for Luma:

(PicY+15)/16*(PicX/2+255)/256*128  Lookup table for Chroma:

Description will be back to FIG. 4.

Afterwards, the video processing apparatus 100 transfers the lookuptable information and the packaged data to the decompression module 160according to the reference frame request of the motion compensationmodule 170 (S180).

The decompression module 160 of the video processing apparatus 100randomly accesses blocks constructing the corresponding frame using thelookup table information, and performs decompression of the blocks andframe reconstruction, thereby obtaining the reference frame (S190).

The video processing apparatus 100 transfers the obtained referenceframe to the motion compensation module 170 (S195).

FIGS. 9 to 14 illustrate test data indicating results obtained byapplying the video processing method in accordance with the exemplaryembodiment of the present invention.

To test the bandwidth reduction effect of the video processing methodaccording to the embodiment disclosed herein, various HEVC testsequences were used and classified into A to F according to image sizes.Bandwidths were estimated as a total amount of frame data in whichreading/writing of a memory was performed through a 128-bit businterface during a decoding process (while reading/writing of thereference frame was performed for motion compensation). Also, fourdifferent qp values (22, 27, 32 and 37) for each sequence were used.

Considering the whole results of FIGS. 9 to 16, it was understood thatthe video processing method according to the exemplary embodimentdisclosed herein could save 56% of bandwidths on average rather thanpure bandwidths when a loop filter module performs writing. Also, it wasunderstood that the video processing method according to the exemplaryembodiment of the present invention could save 59% of bandwidths onaverage rather than pure bandwidths when a motion compensation moduleperforms writing.

FIGS. 9 and 10 illustrate compensation results in a classifying mannerof average bandwidths due to a frame buffer compression of the videoprocessing method according to the embodiment disclosed herein and purebandwidths without compression performed.

FIG. 9 illustrates a bandwidth reduction rate when the decodingapparatus illustrated in FIG. 1 processes a video in accordance with oneexemplary embodiment of the present invention, and FIG. 10 illustrates abandwidth reduction rate when the decoding apparatus illustrated in FIG.2 processes a video in accordance with another exemplary embodiment ofthe present invention.

Meanwhile, FIGS. 10 to 14 are graphs visually illustrating comparisonresults according to each condition. As can be understood through thegraphs, a remarkable bandwidth reduction can be obtained according tothe embodiment of the present invention.

FIG. 15 also illustrates maintenance of bandwidth stability as well asthe bandwidth reduction according to the video processing methodaccording to the exemplary embodiment of the present invention. Withregard to results of the frame buffer compression (line marked with FBC)according to the embodiment of the present invention in FIG. 15, it canbe understood that an almost uniform value is maintained in spite of thedrastic change of uncompressed image information while about 70% ofbandwidths is reduced rather than uncompression (Uncomp). Therefore, thepresent invention can maintain bandwidth stability and derive anadvantageous result for cache design.

FIG. 16 illustrates that an average bandwidth upon the frame buffercompression (line marked with FBC) is reduced below 20% rather than abandwidth of uncompressed (Uncomp) data. The embodiment according to thepresent invention can allow for processing high-resolution image whilemaintaining image quality by virtue of the bandwidth reduction.

The aforementioned methods according to the present invention can bewritten as computer programs to be implemented in a computer and berecorded in a computer readable recording medium. Examples of thecomputer readable recording medium include read-only memory (ROM),random-access memory (RAM), CD-ROMs, magnetic tapes, floppy disks,optical data storage devices, and carrier waves, such as datatransmission through the Internet.

The computer readable recording medium can also be distributed overnetwork coupled computer systems so that the computer readable code isstored and executed in a distributed fashion. Also, functional programs,codes, and code segments for accomplishing the present invention can beeasily construed by programmers skilled in the art to which the presentinvention pertains.

While exemplary embodiments of the present invention have been shown anddescribed, the present invention is not limited to the describedexemplary embodiments. Instead, it would be appreciated by those skilledin the art that various changes and modifications may be made to theseexemplary embodiments without departing from the spirit and scope of theinvention as defined by the appended claims, and these changes andmodifications are not construed as being separated from the technicalidea and prospects of the present invention.

1. A video processing apparatus comprising: an image receiving modulethat is configured to receive encoded data; a filtering module that isconfigured to filter an image frame reconstructed from the encodedimage; a block dividing module that is configured to divide the filteredimage frame into a plurality of blocks; a compression module that isconfigured to compress each of the plurality of blocks, package thecompressed plurality of blocks into a predetermined unit, and generatelookup table information corresponding to each of the packaged pluralityof blocks; and a frame buffer memory that is configured to record thepackaged data and the lookup table information.
 2. The apparatus ofclaim 1, wherein the lookup table information comprises groupidentification information and offset information for identifying aspecific block from the packaged data.
 3. The apparatus of claim 1,wherein the predetermined unit into which the compressed plurality ofblocks are packaged is the same as a burst length of the frame buffermemory.
 4. The apparatus of claim 3, wherein the compression modulerecords the lookup table information in the frame buffer memory when thelookup table information is accumulated in the same size as the burstlength of the frame buffer memory.
 5. The apparatus of claim 1, furthercomprising a decompression module that is configured to access thepackaged data using the lookup table information, in response to areference frame request of a motion compensation module, and acquire aplurality of blocks corresponding to the reference frame from thepackaged data.
 6. The apparatus of claim 5, wherein the decompressionmodule performs decompression of the acquired plurality of blocks on thebasis of the lookup table information, reconstructs the reference frameand transfers the reconstructed reference frame to the motioncompensation module.
 7. The apparatus of claim 1, further comprising: anuncompression processing module that is configured to process an imagesignal output from the filtering module through uncompression andtransfer the uncompressed image signal; and an output module that isconfigured to display the uncompressed image.
 8. The apparatus of claim1, wherein the compression module selectively applies a losslesscompression method or an uncompression method for each of the pluralityof blocks.
 9. A video processing method for a video processingapparatus, the method comprising: receiving an encoded image; filteringan image frame reconstructed from the encoded image; dividing thefiltered image frame into a plurality of blocks; compressing each of theplurality of blocks; packaging the compressed plurality of blocks into apredetermined unit; generating lookup table information to correspond toeach of the packaged plurality of blocks; and recording the packageddata and the lookup table information.
 10. The method of claim 9,wherein the lookup table information comprises group identificationinformation and offset information for identifying a specific block fromthe packaged data.
 11. The method of claim 9, wherein the predeterminedunit into which the compressed plurality of blocks are packaged is thesame as a burst length of the frame buffer memory.
 12. The method ofclaim 11, wherein the recording of the lookup table information isconfigured to record the lookup table information in the frame buffermemory when the lookup table information is accumulated in the same sizeas the burst length of the frame buffer memory.
 13. The method of claim9, further comprising: accessing the packaged data using the lookuptable information, in response to a reference frame request of a motioncompensation module; and acquiring a plurality of blocks correspondingto the reference frame from the packaged data.
 14. The method of claim13, further comprising: performing decompression for the acquiredplurality of blocks based on the lookup table information;reconstructing the reference frame; and transferring the reconstructedframe to the motion compensation module.
 15. The method of claim 14,further comprising: processing an image signal output from the filteringmodule in an uncompression manner and transferring the processed imagesignal; and displaying the uncompressed image.
 16. The method of claim9, wherein the compressing comprises: selectively applying a losslesscompression method or an uncompression method to each of the blocks. 17.A nonvolatile recording medium with a program recorded therein forexecuting the method according to claim 9 in a computer.